import { AnyAction } from "redux"
import { CounterState } from "./types"

/* 
reducer函数: 根据老的state和指定的action产生新的state
由store内部调用

必须同步计算返回新的state
*/
const initState: CounterState = {count: 0}

export default function counter(state=initState, action: AnyAction) { // 必须是一个纯函数
  console.log('countReducer', state, action)
  switch (action.type) {
    case 'INCREMENT':
      return {count: state.count + action.data}
    case 'DECREMENT':
      return {count: state.count - action.data}
    default: // 第一次调用 / type不是上面的某个值
      return state
  }
}